Skip to content

feat: onboarding backup choice + localized App Store metadata (13 locales) - #16

Merged
markm39 merged 2 commits into
mainfrom
feat/onboarding-backup-ask
Aug 30, 2026
Merged

feat: onboarding backup choice + localized App Store metadata (13 locales)#16
markm39 merged 2 commits into
mainfrom
feat/onboarding-backup-ask

Conversation

@markm39

@markm39 markm39 commented Aug 30, 2026

Copy link
Copy Markdown
Contributor

Onboarding backup choice

A fourth onboarding slide (iOS only) explains in one sentence why backup matters and asks explicitly:

Safe, even from disasters. A lost iPad, a hard crash, a deleted app — with iCloud backup your notes survive them all, in your own iCloud. Nothing ever leaves your Apple account.

Primary: Enable iCloud backup (syncs immediately). Secondary: Continue without backup (persists off, no confirmation nag — it's already an explicit answer). Skip keeps the default (on).

Review-driven hardening: automatic backup syncs are now gated on onboarding completion at the service level — simulator E2E caught that the catalog-persist trigger scheduled a mirror during onboarding, before consent. Now: nothing mirrors until the user answers (verified 12s+ past the sync debounce), declining means never backed up, and an explicit Enable syncs instantly.

Localized App Store metadata (fastlane deliver)

fastlane/metadata/ for en-US, de-DE, fr-FR, es-ES, es-MX, it, pt-BR, ja, ko, zh-Hans, zh-Hant, nl-NL, ru — name, subtitle, description, keywords, promotional text, 1.3 release notes, and support/marketing/privacy URLs, all generated with hard character-limit validation (name/subtitle 30, keywords 100, promo 170).

The en-US description is minimally edited: the live listing's "no cloud sync, and your notes never leave your device" would become false when backup ships, so it now honestly describes optional backup to the user's own iCloud.

To upload (needs your ASC auth, one interactive sign-in): cd to the repo and run fastlane deliver. Note this will overwrite the existing keywords/subtitle in ASC with the ones here — review fastlane/metadata/en-US/ first.

Verification

  • 43/43 tests, typecheck, Metro export
  • Simulator E2E: slide renders (all four progress dots), Enable path (flag true + immediate mirror), decline path (flag false, no sync), consent gate (zero files mirrored during onboarding), Android untouched (slide hidden)
  • Review agent findings applied (write-path dedupe, isLastPage, style reuse, distinct accessibility label, consent-timing gate)

https://claude.ai/code/session_01SC2VXhehZBBpXybNBsGqBs

…tion

Adds a fourth onboarding slide (iOS only): one sentence on why backup
matters - a lost iPad, a hard crash, a deleted app - with an explicit
choice: 'Enable iCloud backup' or 'Continue without backup'. Skipping
onboarding keeps the default (on).

Automatic backup syncs are now gated on onboarding completion at the
service level, so nothing is mirrored before a fresh user has answered
the question (the catalog-persist trigger previously scheduled a sync
during onboarding - caught by simulator E2E). An explicit choice syncs
immediately; declining means never backed up, not backed-up-then-
stopped.

Verified on iPad simulator: no mirror during onboarding 12s+ past the
sync debounce; Enable writes the flag and mirrors immediately; decline
persists false with no sync.

Claude-Session: https://claude.ai/code/session_01SC2VXhehZBBpXybNBsGqBs
App Store metadata (name, subtitle, description, keywords, promotional
text, release notes, URLs) for en-US, de-DE, fr-FR, es-ES, es-MX, it,
pt-BR, ja, ko, zh-Hans, zh-Hant, nl-NL, ru, generated with hard
character-limit validation. The en-US description is minimally updated:
'no cloud sync, notes never leave your device' becomes an honest
description of optional backup to the user's own iCloud, matching the
upcoming release. Deliverfile uploads metadata only (no binary, no
screenshots). Upload requires an interactive 'fastlane deliver' sign-in
or an App Store Connect API key.

Claude-Session: https://claude.ai/code/session_01SC2VXhehZBBpXybNBsGqBs
@markm39
markm39 merged commit 0e6f43e into main Aug 30, 2026
@markm39
markm39 deleted the feat/onboarding-backup-ask branch August 30, 2026 13:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant